package com.lgj.web.sys.mapper;

import com.lgj.core.LoginUser;
import com.lgj.web.sys.model.SysResource;
import com.lgj.web.sys.model.SysRole;
import com.lgj.web.sys.model.SysUser;
import com.lgj.web.sys.model.SysUserRoleRelation;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface SysUserMapper {

    int deleteByPrimaryKey(Long id);

    int insert(SysUser record);

    int insertSelective(SysUser record);

    SysUser selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(SysUser record);

    int updateByPrimaryKey(SysUser record);

    /**
     * 批量插入用户角色关系
     */
    int insertList(@Param("list") List<SysUserRoleRelation> adminRoleRelationList);

    /**
     * 获取用于所有角色
     */
    List<SysRole> getRoleList(@Param("userId") Long userId);

    /**
     * 获取用户所有可访问资源
     */
    List<SysResource> getResourceList(@Param("userId") Long userId);

    /**
     * 获取资源相关用户ID列表
     */
    List<Long> getuserIdList(@Param("resourceId") Long resourceId);


    SysUser selectByUsername(String userName);


    List<SysUser> selectPageList(String keyword);


    LoginUser getUserByUserName(String userName);
}